package org.alesv.common.logging.annotations.spring;

/**
 * Tipo enumerado para los scope de ejecución.
 * 
 * @author 
 *         http://internna.blogspot.com/2007/01/one-of-questions-that-arise-time-
 *         and.html
 */
public enum Scope {

	SINGLETON(0, "singleton"), PROTOTYPE(1, "prototype"), REQUEST(2, "request"), SESSION(
			3, "session"), GLOBALSESSIOM(4, "globalSession");

	/**
	 * Valor del scope.
	 */
	private final int value;

	/**
	 * Nombre del scope.
	 */
	private final String scopeName;

	/**
	 * Constructor principal.
	 * 
	 * @param value
	 *            Valor del scope.
	 * @param scopeName
	 *            Nombre del scope.
	 */
	private Scope(final int value, final String scopeName) {
		this.value = value;
		this.scopeName = scopeName;
	}

	/**
	 * Devuelve el valor del scope.
	 * 
	 * @return Valor del scope.
	 */
	public int getValue() {
		return value;
	}

	/**
	 * Devuelve el nombre del scope.
	 * 
	 * @return Nombre del scope.
	 */
	public String getScopeName() {
		return scopeName;
	}
}
